/*
 *  AParamItem.h
 *  libavid
 *
 *  Created by Peter on 25.02.12.
 *  Copyright 2012 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef A_PARAM_ITEM_H
#define A_PARAM_ITEM_H

#include "AObject.h"
#include "AvTypes.h"

// Version: 2 (MC 5.0.3), 'PRIT'
class AParamItem : public AObject
{

public:
	
	A_DECLARE_CLASS( 'PRIT', AParamItem, AObject );
	
	virtual void readFromStream( AStream& str, const AObjDoc& objd );
	virtual void dump( std::ostream& str ) const;
	
	enum ValueType {
		VALUE_TYPE_LONG   = 1, // Int32
		VALUE_TYPE_DOUBLE = 2  // Float64
		// other values unknown
	};
	
	union Value {
		Int32   _longValue;
		Float64 _doubleValue;
	};
	
	acfUID      _guid;     
	ValueType   _valueType;    // OMFI:PRIT:ValueType: 1
	Value       _value;        // OMFI:PRIT:Value : 0
	std::string _name;         // OMFI:PRIT:Name  : ""
	bool        _enabled;      // OMFI:PRIT:Enabled: True
	UInt32      _controlTrack; // OMFI:PRIT:ControlTrack: 0x00000000 // Track pointer?
	
	// PClass Extension ContributesToSignature
	bool _contributesToSignature; // OMFI:PRIT:ContributesToSignature: True
	
};

#endif /*Inclusion Guard*/